package org.common.utils.field;

import org.common.utils.tool.StringTool;

/**
 * 数据库字段信息
 * @author zhouzhibing
 * @date 2025/1/8
 */
public class FieldInfo {
    /**
     * 列名
     */
    private String columnName;
    /**
     * 列注释
     */
    private String comment;
    /**
     * 属性名
     */
    private String name;
    /**
     * 属性类型
     */
    private String type;
    /**
     * set 方法
     */
    private String setMethod;
    /**
     * get 方法
     */
    private String getMethod;

    /**
     * 字段信息
     * @param columnName 列名
     * @param columnType 列类型
     * @param comment 列注释
     */
    public FieldInfo(String columnName, String columnType , String comment) {
        this.columnName = columnName;
        this.comment = comment;
        this.name = StringTool.toMinHumpString(columnName);
        this.type = StringTool.getJavaTypeString(columnType);

        String methodName = StringTool.toMaxHumpString(columnName);
        this.setMethod = "set" + methodName;
        this.getMethod = "get" + methodName;
    }

    public String getColumnName() {
        return columnName;
    }

    public String getName() {
        return name;
    }

    public String getType() {
        return type;
    }

    public String getSetMethod() {
        return setMethod;
    }

    public String getGetMethod() {
        return getMethod;
    }

    public String getComment() {
        return comment;
    }
}